from django.views import View
# 导入返回响应
from SaaSDevelTool.data_return_response import create_response
# 导入错误信息装饰器
from SaaSDevelTool.data_return_response import error_message_detection
# 导入数据库连接
from SaaSDevelTool.data_mysql_data import db
# 查询参数
from SaaSDevelTool.data_operation import is_number

"""企业登录映射添加"""


class SaaSDataTenementLoginCreate(View):
    @error_message_detection
    def post(self, request):
        # 获取企业编号
        tenement_id = request.POST.get("tenement_id")
        # 获取登录编号
        login_id = request.POST.get("login_id")
        # 判断对应参数
        if not all([tenement_id, login_id]):
            # 返回对应的相应
            return create_response(code=400, msg="企业编号与登录方式编号为必传选项。")

        # 判断对应的企业编号
        if not is_number(tenement_id):
            return create_response(code=400, msg="企业编号传递错误。")

        # 判断登录编号
        if not is_number(login_id):
            return create_response(code=400, msg="登录编号传递错误。")

        # 查询对应的语句
        query_tenement_login_sql = """
            SELECT 
                tenement_id, 
                login_id
            FROM 
                db_saas_center.map_tenement_login_table 
            WHERE 
                tenement_id = {} 
            AND 
                login_id = {}
            ;""".format(tenement_id, login_id)
        # 判断出对应的数据
        if db.findAll(query_tenement_login_sql):
            return create_response(code=400, msg="当前企业已配置对应的登录方式。")

        # 拼接对应的语句
        create_map_tenement_login_table_sql = """
            INSERT INTO 
                db_saas_center.map_tenement_login_table(
                    tenement_id, 
                    login_id
                )
            VALUES
                ({}, {})
            ;""".format(tenement_id, login_id)

        # 执行
        db.update(create_map_tenement_login_table_sql)

        # 返回对应的响应
        return create_response(code=200, msg="企业登录方式开启成功。")
